/**
 *   服务器端接口用户管理
 *   服务端接口的url地址规范：
 *   v1 v2 v3 版本 同时接口具有多个版本  客户端无法更新  不更新
 *   http://www.html2204.com/api/v1/功能名称/操作名称
 *
 *   用户管理功能
 *   用户名 username  密码 password  手机 mobile 邮箱 email  性别 grander  头像 avatar
 *   创建用户  注册
 *   查询用户  登录   用户个人信息获取
 *
 *   技术点：
 *    1、express搭建http服务
 *    2、基于mongodb进行数据存储  mongoose连接数据库
 *    3、md5进行密码加密
 *    4、cors中间件解决接口跨域问题
 *    5、jsonwebtoken token签发和校验
 *    6、自定义中间件实现 密码加密  token校验  访问日志记录[时间格式化moment库]
 *    7、使用express内置中间件实现post数据的接收  表单数据  json格式数据
 */
const express = require('express')
const cors = require('cors')
const app = express()
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
app.use(require('./middleware/accessLog'))
app.use(cors())
// 配置路由
// 管理用户
app.use('/api/v1', require('./router/auth'))
// 商品管理
app.use('/api/v1', require('./router/goods'))
// 会员管理
app.use('/api/v1', require('./router/members'))
// 上传文件
app.use('/api/v1', require('./router/upload'))
// 静态资源访问服务
app.use('/static/img', express.static('./upload'))
// 异常错误中间件
app.use((err, req, res, next) => {
  console.log(err)
  res.send({
    code: 1,
    msg: err.type === 'entity.parse.failed' ? 'json格式错误' : '格式错误',
    data: []
  })
})
const port = 5000
app.listen(port, () => {
  console.log('server is running:http://127.0.0.1:' + port)
})
